import '../shared/models/word.dart';

class EsperantoVocabularyLarge {
  // 基础词根 - 动物类 (Animals)
  static final List<Word> animals = [
    Word(id: 'hundo', esperanto: 'hundo', english: 'dog', pronunciation: 'HUN-do', definition: 'A domesticated mammal', category: 'Animals', examples: ['La hundo estas fidela'], audioUrl: '', difficulty: 1),
    Word(id: 'kato', esperanto: 'kato', english: 'cat', pronunciation: 'KA-to', definition: 'A small carnivorous mammal', category: 'Animals', examples: ['La kato dormas'], audioUrl: '', difficulty: 1),
    Word(id: 'birdo', esperanto: 'birdo', english: 'bird', pronunciation: 'BIR-do', definition: 'A feathered vertebrate', category: 'Animals', examples: ['La birdo flugas'], audioUrl: '', difficulty: 1),
    Word(id: 'fiŝo', esperanto: 'fiŝo', english: 'fish', pronunciation: 'FI-ŝo', definition: 'An aquatic vertebrate', category: 'Animals', examples: ['La fiŝo naĝas'], audioUrl: '', difficulty: 1),
    Word(id: 'ĉevalo', esperanto: 'ĉevalo', english: 'horse', pronunciation: 'ĈE-va-lo', definition: 'A large mammal', category: 'Animals', examples: ['La ĉevalo kuras'], audioUrl: '', difficulty: 1),
    Word(id: 'bovo', esperanto: 'bovo', english: 'cow', pronunciation: 'BO-vo', definition: 'A large domesticated ungulate', category: 'Animals', examples: ['La bovo manĝas herbon'], audioUrl: '', difficulty: 1),
    Word(id: 'porko', esperanto: 'porko', english: 'pig', pronunciation: 'POR-ko', definition: 'A domesticated mammal', category: 'Animals', examples: ['La porko estas grasa'], audioUrl: '', difficulty: 1),
    Word(id: 'ŝafo', esperanto: 'ŝafo', english: 'sheep', pronunciation: 'ŜA-fo', definition: 'A woolly ruminant', category: 'Animals', examples: ['La ŝafo havas lanon'], audioUrl: '', difficulty: 1),
    Word(id: 'kapro', esperanto: 'kapro', english: 'goat', pronunciation: 'KA-pro', definition: 'A hardy ruminant', category: 'Animals', examples: ['La kapro saltas'], audioUrl: '', difficulty: 1),
    Word(id: 'kokino', esperanto: 'kokino', english: 'chicken', pronunciation: 'ko-KI-no', definition: 'A domesticated fowl', category: 'Animals', examples: ['La kokino demetas ovon'], audioUrl: '', difficulty: 1),
    Word(id: 'anaso', esperanto: 'anaso', english: 'duck', pronunciation: 'a-NA-so', definition: 'A waterfowl', category: 'Animals', examples: ['La anaso naĝas'], audioUrl: '', difficulty: 1),
    Word(id: 'ansero', esperanto: 'ansero', english: 'goose', pronunciation: 'an-SE-ro', definition: 'A large waterfowl', category: 'Animals', examples: ['La ansero flugas suden'], audioUrl: '', difficulty: 1),
    Word(id: 'leporo', esperanto: 'leporo', english: 'rabbit', pronunciation: 'le-PO-ro', definition: 'A small mammal', category: 'Animals', examples: ['La leporo saltas'], audioUrl: '', difficulty: 1),
    Word(id: 'muso', esperanto: 'muso', english: 'mouse', pronunciation: 'MU-so', definition: 'A small rodent', category: 'Animals', examples: ['La muso kuras'], audioUrl: '', difficulty: 1),
    Word(id: 'rato', esperanto: 'rato', english: 'rat', pronunciation: 'RA-to', definition: 'A medium-sized rodent', category: 'Animals', examples: ['La rato serĉas manĝaĵon'], audioUrl: '', difficulty: 1),
    Word(id: 'urso', esperanto: 'urso', english: 'bear', pronunciation: 'UR-so', definition: 'A large carnivorous mammal', category: 'Animals', examples: ['La urso estas granda'], audioUrl: '', difficulty: 2),
    Word(id: 'lupo', esperanto: 'lupo', english: 'wolf', pronunciation: 'LU-po', definition: 'A wild carnivorous mammal', category: 'Animals', examples: ['La lupo ulas'], audioUrl: '', difficulty: 2),
    Word(id: 'vulpo', esperanto: 'vulpo', english: 'fox', pronunciation: 'VUL-po', definition: 'A small carnivorous mammal', category: 'Animals', examples: ['La vulpo estas ruĝa'], audioUrl: '', difficulty: 2),
    Word(id: 'leono', esperanto: 'leono', english: 'lion', pronunciation: 'le-O-no', definition: 'A large wild cat', category: 'Animals', examples: ['La leono estas reĝo'], audioUrl: '', difficulty: 2),
    Word(id: 'tigro', esperanto: 'tigro', english: 'tiger', pronunciation: 'TI-gro', definition: 'A large striped cat', category: 'Animals', examples: ['La tigro havas striojn'], audioUrl: '', difficulty: 2),
    Word(id: 'elefanto', esperanto: 'elefanto', english: 'elephant', pronunciation: 'e-le-FAN-to', definition: 'A large mammal with trunk', category: 'Animals', examples: ['La elefanto estas granda'], audioUrl: '', difficulty: 2),
    Word(id: 'simio', esperanto: 'simio', english: 'monkey', pronunciation: 'SI-mi-o', definition: 'A primate', category: 'Animals', examples: ['La simio saltas'], audioUrl: '', difficulty: 2),
    Word(id: 'serpento', esperanto: 'serpento', english: 'snake', pronunciation: 'ser-PEN-to', definition: 'A limbless reptile', category: 'Animals', examples: ['La serpento rampas'], audioUrl: '', difficulty: 2),
    Word(id: 'raneto', esperanto: 'raneto', english: 'frog', pronunciation: 'ra-NE-to', definition: 'An amphibian', category: 'Animals', examples: ['La raneto saltas'], audioUrl: '', difficulty: 2),
    Word(id: 'testudo', esperanto: 'testudo', english: 'turtle', pronunciation: 'tes-TU-do', definition: 'A reptile with shell', category: 'Animals', examples: ['La testudo estas malrapida'], audioUrl: '', difficulty: 2),
  ];

  // 植物类 (Plants)
  static final List<Word> plants = [
    Word(id: 'arbo', esperanto: 'arbo', english: 'tree', pronunciation: 'AR-bo', definition: 'A woody plant', category: 'Plants', examples: ['La arbo estas alta'], audioUrl: '', difficulty: 1),
    Word(id: 'floro', esperanto: 'floro', english: 'flower', pronunciation: 'FLO-ro', definition: 'A reproductive structure', category: 'Plants', examples: ['La floro estas bela'], audioUrl: '', difficulty: 1),
    Word(id: 'herbo', esperanto: 'herbo', english: 'grass', pronunciation: 'HER-bo', definition: 'Small green plants', category: 'Plants', examples: ['La herbo estas verda'], audioUrl: '', difficulty: 1),
    Word(id: 'folio', esperanto: 'folio', english: 'leaf', pronunciation: 'fo-LI-o', definition: 'A plant organ', category: 'Plants', examples: ['La folio falas'], audioUrl: '', difficulty: 1),
    Word(id: 'radiko', esperanto: 'radiko', english: 'root', pronunciation: 'ra-DI-ko', definition: 'Underground part of plant', category: 'Plants', examples: ['La radiko kreskas'], audioUrl: '', difficulty: 1),
    Word(id: 'branĉo', esperanto: 'branĉo', english: 'branch', pronunciation: 'BRAN-ĉo', definition: 'A woody structural member', category: 'Plants', examples: ['La branĉo estas forta'], audioUrl: '', difficulty: 1),
    Word(id: 'trunko', esperanto: 'trunko', english: 'trunk', pronunciation: 'TRUN-ko', definition: 'Main stem of tree', category: 'Plants', examples: ['La trunko estas dika'], audioUrl: '', difficulty: 1),
    Word(id: 'semo', esperanto: 'semo', english: 'seed', pronunciation: 'SE-mo', definition: 'Plant embryo', category: 'Plants', examples: ['La semo kreskas'], audioUrl: '', difficulty: 1),
    Word(id: 'frukto', esperanto: 'frukto', english: 'fruit', pronunciation: 'FRUK-to', definition: 'Seed-bearing structure', category: 'Plants', examples: ['La frukto estas dolĉa'], audioUrl: '', difficulty: 1),
    Word(id: 'rozo', esperanto: 'rozo', english: 'rose', pronunciation: 'RO-zo', definition: 'A flowering shrub', category: 'Plants', examples: ['La rozo odoras'], audioUrl: '', difficulty: 1),
    Word(id: 'lilio', esperanto: 'lilio', english: 'lily', pronunciation: 'li-LI-o', definition: 'A flowering plant', category: 'Plants', examples: ['La lilio estas blanka'], audioUrl: '', difficulty: 2),
    Word(id: 'tulipo', esperanto: 'tulipo', english: 'tulip', pronunciation: 'tu-LI-po', definition: 'A spring flower', category: 'Plants', examples: ['La tulipo blovas'], audioUrl: '', difficulty: 2),
    Word(id: 'sunfloro', esperanto: 'sunfloro', english: 'sunflower', pronunciation: 'sun-FLO-ro', definition: 'A large yellow flower', category: 'Plants', examples: ['La sunfloro turniĝas'], audioUrl: '', difficulty: 2),
    Word(id: 'violo', esperanto: 'violo', english: 'violet', pronunciation: 'vi-O-lo', definition: 'A small purple flower', category: 'Plants', examples: ['La violo estas malgranda'], audioUrl: '', difficulty: 2),
    Word(id: 'pino', esperanto: 'pino', english: 'pine', pronunciation: 'PI-no', definition: 'An evergreen tree', category: 'Plants', examples: ['La pino estas ĉiamverda'], audioUrl: '', difficulty: 2),
    Word(id: 'kverko', esperanto: 'kverko', english: 'oak', pronunciation: 'KVER-ko', definition: 'A hardwood tree', category: 'Plants', examples: ['La kverko estas forta'], audioUrl: '', difficulty: 2),
    Word(id: 'betulo', esperanto: 'betulo', english: 'birch', pronunciation: 'be-TU-lo', definition: 'A deciduous tree', category: 'Plants', examples: ['La betulo havas blankan ŝelon'], audioUrl: '', difficulty: 2),
    Word(id: 'saliko', esperanto: 'saliko', english: 'willow', pronunciation: 'sa-LI-ko', definition: 'A flexible tree', category: 'Plants', examples: ['La saliko ploras'], audioUrl: '', difficulty: 2),
    Word(id: 'pomo', esperanto: 'pomo', english: 'apple', pronunciation: 'PO-mo', definition: 'A round fruit', category: 'Plants', examples: ['La pomo estas ruĝa'], audioUrl: '', difficulty: 1),
    Word(id: 'piro', esperanto: 'piro', english: 'pear', pronunciation: 'PI-ro', definition: 'A sweet fruit', category: 'Plants', examples: ['La piro estas dolĉa'], audioUrl: '', difficulty: 1),
  ];

  // 食物类 (Food)
  static final List<Word> food = [
    Word(id: 'pano', esperanto: 'pano', english: 'bread', pronunciation: 'PA-no', definition: 'A staple food', category: 'Food', examples: ['Mi manĝas panon'], audioUrl: '', difficulty: 1),
    Word(id: 'akvo', esperanto: 'akvo', english: 'water', pronunciation: 'AK-vo', definition: 'A clear liquid', category: 'Food', examples: ['Mi trinkas akvon'], audioUrl: '', difficulty: 1),
    Word(id: 'lakto', esperanto: 'lakto', english: 'milk', pronunciation: 'LAK-to', definition: 'A white liquid', category: 'Food', examples: ['La lakto estas blanka'], audioUrl: '', difficulty: 1),
    Word(id: 'butero', esperanto: 'butero', english: 'butter', pronunciation: 'bu-TE-ro', definition: 'A dairy product', category: 'Food', examples: ['La butero estas flava'], audioUrl: '', difficulty: 1),
    Word(id: 'fromaĝo', esperanto: 'fromaĝo', english: 'cheese', pronunciation: 'fro-MA-ĝo', definition: 'A dairy product', category: 'Food', examples: ['La fromaĝo estas bongusta'], audioUrl: '', difficulty: 1),
    Word(id: 'ovo', esperanto: 'ovo', english: 'egg', pronunciation: 'O-vo', definition: 'A reproductive body', category: 'Food', examples: ['Mi manĝas ovon'], audioUrl: '', difficulty: 1),
    Word(id: 'viando', esperanto: 'viando', english: 'meat', pronunciation: 'vi-AN-do', definition: 'Animal flesh', category: 'Food', examples: ['La viando estas kuirita'], audioUrl: '', difficulty: 1),
    Word(id: 'legomo', esperanto: 'legomo', english: 'vegetable', pronunciation: 'le-GO-mo', definition: 'Plant food', category: 'Food', examples: ['Mi manĝas legomojn'], audioUrl: '', difficulty: 1),
    Word(id: 'karoto', esperanto: 'karoto', english: 'carrot', pronunciation: 'ka-RO-to', definition: 'An orange root vegetable', category: 'Food', examples: ['La karoto estas oranĝa'], audioUrl: '', difficulty: 1),
    Word(id: 'terpomo', esperanto: 'terpomo', english: 'potato', pronunciation: 'ter-PO-mo', definition: 'A starchy tuber', category: 'Food', examples: ['La terpomo kreskas'], audioUrl: '', difficulty: 1),
    Word(id: 'tomato', esperanto: 'tomato', english: 'tomato', pronunciation: 'to-MA-to', definition: 'A red fruit', category: 'Food', examples: ['La tomato estas ruĝa'], audioUrl: '', difficulty: 1),
    Word(id: 'kukumo', esperanto: 'kukumo', english: 'cucumber', pronunciation: 'ku-KU-mo', definition: 'A green vegetable', category: 'Food', examples: ['La kukumo estas verda'], audioUrl: '', difficulty: 1),
    Word(id: 'cepo', esperanto: 'cepo', english: 'onion', pronunciation: 'CE-po', definition: 'A pungent bulb', category: 'Food', examples: ['La cepo plorigas'], audioUrl: '', difficulty: 1),
    Word(id: 'ajlo', esperanto: 'ajlo', english: 'garlic', pronunciation: 'AJ-lo', definition: 'A pungent bulb', category: 'Food', examples: ['La ajlo odoras'], audioUrl: '', difficulty: 1),
    Word(id: 'rizo', esperanto: 'rizo', english: 'rice', pronunciation: 'RI-zo', definition: 'A cereal grain', category: 'Food', examples: ['Mi manĝas rizon'], audioUrl: '', difficulty: 1),
    Word(id: 'tritiko', esperanto: 'tritiko', english: 'wheat', pronunciation: 'tri-TI-ko', definition: 'A cereal grain', category: 'Food', examples: ['La tritiko kreskas'], audioUrl: '', difficulty: 2),
    Word(id: 'hordeo', esperanto: 'hordeo', english: 'barley', pronunciation: 'hor-DE-o', definition: 'A cereal grain', category: 'Food', examples: ['La hordeo estas utila'], audioUrl: '', difficulty: 2),
    Word(id: 'aveno', esperanto: 'aveno', english: 'oats', pronunciation: 'a-VE-no', definition: 'A cereal grain', category: 'Food', examples: ['La aveno estas sana'], audioUrl: '', difficulty: 2),
    Word(id: 'kafo', esperanto: 'kafo', english: 'coffee', pronunciation: 'KA-fo', definition: 'A hot beverage', category: 'Food', examples: ['Mi trinkas kafon'], audioUrl: '', difficulty: 1),
    Word(id: 'teo', esperanto: 'teo', english: 'tea', pronunciation: 'TE-o', definition: 'A hot beverage', category: 'Food', examples: ['La teo estas varma'], audioUrl: '', difficulty: 1),
  ];

  // 数字类 (Numbers)
  static final List<Word> numbers = [
    Word(id: 'nul', esperanto: 'nul', english: 'zero', pronunciation: 'NUL', definition: 'The number 0', category: 'Numbers', examples: ['Nul estas nenio'], audioUrl: '', difficulty: 1),
    Word(id: 'unu', esperanto: 'unu', english: 'one', pronunciation: 'U-nu', definition: 'The number 1', category: 'Numbers', examples: ['Unu plus unu'], audioUrl: '', difficulty: 1),
    Word(id: 'du', esperanto: 'du', english: 'two', pronunciation: 'DU', definition: 'The number 2', category: 'Numbers', examples: ['Du okuloj'], audioUrl: '', difficulty: 1),
    Word(id: 'tri', esperanto: 'tri', english: 'three', pronunciation: 'TRI', definition: 'The number 3', category: 'Numbers', examples: ['Tri fingroj'], audioUrl: '', difficulty: 1),
    Word(id: 'kvar', esperanto: 'kvar', english: 'four', pronunciation: 'KVAR', definition: 'The number 4', category: 'Numbers', examples: ['Kvar gambeoj'], audioUrl: '', difficulty: 1),
    Word(id: 'kvin', esperanto: 'kvin', english: 'five', pronunciation: 'KVIN', definition: 'The number 5', category: 'Numbers', examples: ['Kvin fingroj'], audioUrl: '', difficulty: 1),
    Word(id: 'ses', esperanto: 'ses', english: 'six', pronunciation: 'SES', definition: 'The number 6', category: 'Numbers', examples: ['Ses piedoj'], audioUrl: '', difficulty: 1),
    Word(id: 'sep', esperanto: 'sep', english: 'seven', pronunciation: 'SEP', definition: 'The number 7', category: 'Numbers', examples: ['Sep tagoj'], audioUrl: '', difficulty: 1),
    Word(id: 'ok', esperanto: 'ok', english: 'eight', pronunciation: 'OK', definition: 'The number 8', category: 'Numbers', examples: ['Ok brakoj'], audioUrl: '', difficulty: 1),
    Word(id: 'naŭ', esperanto: 'naŭ', english: 'nine', pronunciation: 'NAŬ', definition: 'The number 9', category: 'Numbers', examples: ['Naŭ vivoj'], audioUrl: '', difficulty: 1),
    Word(id: 'dek', esperanto: 'dek', english: 'ten', pronunciation: 'DEK', definition: 'The number 10', category: 'Numbers', examples: ['Dek fingroj'], audioUrl: '', difficulty: 1),
    Word(id: 'cent', esperanto: 'cent', english: 'hundred', pronunciation: 'CENT', definition: 'The number 100', category: 'Numbers', examples: ['Cent jaroj'], audioUrl: '', difficulty: 2),
    Word(id: 'mil', esperanto: 'mil', english: 'thousand', pronunciation: 'MIL', definition: 'The number 1000', category: 'Numbers', examples: ['Mil steloj'], audioUrl: '', difficulty: 2),
    Word(id: 'miliono', esperanto: 'miliono', english: 'million', pronunciation: 'mi-li-O-no', definition: 'The number 1,000,000', category: 'Numbers', examples: ['Miliono da homoj'], audioUrl: '', difficulty: 3),
    Word(id: 'unua', esperanto: 'unua', english: 'first', pronunciation: 'U-nu-a', definition: 'Number one in order', category: 'Numbers', examples: ['La unua tago'], audioUrl: '', difficulty: 1),
    Word(id: 'dua', esperanto: 'dua', english: 'second', pronunciation: 'DU-a', definition: 'Number two in order', category: 'Numbers', examples: ['La dua fojo'], audioUrl: '', difficulty: 1),
    Word(id: 'tria', esperanto: 'tria', english: 'third', pronunciation: 'TRI-a', definition: 'Number three in order', category: 'Numbers', examples: ['La tria loko'], audioUrl: '', difficulty: 1),
    Word(id: 'kvara', esperanto: 'kvara', english: 'fourth', pronunciation: 'KVA-ra', definition: 'Number four in order', category: 'Numbers', examples: ['La kvara etaĝo'], audioUrl: '', difficulty: 1),
    Word(id: 'kvina', esperanto: 'kvina', english: 'fifth', pronunciation: 'KVI-na', definition: 'Number five in order', category: 'Numbers', examples: ['La kvina monato'], audioUrl: '', difficulty: 1),
    Word(id: 'lasta', esperanto: 'lasta', english: 'last', pronunciation: 'LAS-ta', definition: 'Final in order', category: 'Numbers', examples: ['La lasta tago'], audioUrl: '', difficulty: 1),
  ];

  // 获取所有词汇
  static List<Word> get allVocabulary => [
    ...animals,
    ...plants,
    ...food,
    ...numbers,
  ];

  // 根据类别获取词汇
  static List<Word> getWordsByCategory(String category) {
    switch (category) {
      case 'Animals':
        return animals;
      case 'Plants':
        return plants;
      case 'Food':
        return food;
      case 'Numbers':
        return numbers;
      default:
        return allVocabulary;
    }
  }

  // 获取所有类别
  static List<String> getAllCategories() {
    return ['Animals', 'Plants', 'Food', 'Numbers'];
  }
} 